package model;

import java.io.Serializable;
import java.util.ArrayList;

import excecoes.DinheiroInsuficienteException;

public class Terreno extends Descricao implements Serializable {
	
	private static final long serialVersionUID = 6075553534556023944L;
	private Jogador dono = null;
	private String nome = null;
	private double valor;
	private double aluguel;
	private double valorOriginal;
	private int quantidadeCasas = 0;
	private ArrayList<ItemPropriedade> propriedades;

	public Terreno(String nome, double valor) {
		this.valor = valor;
		this.nome = nome;
		valorOriginal = valor;
		propriedades = new ArrayList<ItemPropriedade>();
	}
	
	private void setValor(double valor) {
		this.valor = valor;
	}
	
	public double getValor() {
		return valor;
	}

	public void setDono(Jogador dono) {
		this.dono = dono;
	}
	
	public Jogador getDono() {
		return this.dono;
	}
	
	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public void construirCasa(){
		propriedades.add(new Casa());
		quantidadeCasas++;
	}
	
	public int getQuantidadeCasas(){
		return quantidadeCasas;
	}
	
	public void construirHotel(){
		propriedades.clear();
		propriedades.add(new Hotel());
		setValor(valorOriginal*2);
	}

	void acao(Jogador jogador) throws DinheiroInsuficienteException {
		if(this.dono != null){
			dono.setDinheiro(dono.getDinheiro()+aluguel);
			jogador.setDinheiro(jogador.getDinheiro()-aluguel);
		}
	}

	public void setAluguel(double aluguel) {
		this.aluguel = aluguel;
	}

	public double getAluguel() {
		return aluguel;
	}
}
